<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // forEach 方法 es6遍历
        let arr = [1, 2, 3, 4];
        let add = 0;
        arr.forEach((val, index) => {
            add += val;
            console.log(`第${index}数字是${val}`)
        })

        //filter 多个进去 出来一个或多个符合条件的
        let arr1 = [90, 50, 60, 88, 70]
        //filter 必须有返回值 且为一个布尔值 true / false 执行完后返回一个新的数组
        /*  let newArr1 = arr1.filter((item, index) => {
             if (item >= 60) {
                 return true
             }
         }) */

        let newArr1 = arr1.filter((item, index) => item >= 60)
        console.log(newArr1)

        //map 映射 进出多少出来多少
        let arr2 = [10, 20, 50, 60, 70, 80, 90, 100]
        console.log(arr2.map((val, index) => val >= 60 ? '及格' : '不及格'))

        console.log(
            arr2.map((val, index) => val * 1.3).map((val, index) => '全场九折现价' + val * 0.9)
        )

        //reduce() 对数组中的每个元素执行一个reducer函数（升序执行），将其结果汇总为单个返回值 
        /*
        accumulator 累加器
        current value 当前值
        current index 索引
        source array 原数组
        */
        //1.如果没有给这个reduce初始值 那么默认就会去数组的第一项作为初始值 第一次当前值就是数组的第二项
        let arr3 = [10, 20, 50, 60, 70, 80, 90, 100]
        let add3 = arr3.reduce((preVal, curVal, curIndex, sourceArray) => {
            return preVal + curVal
        })
        console.log(add3)

        //2.给了初始值 那么preval就是给的初始值 curval就是第一项 从数组的第一个开始
        let add3_ = arr3.reduce((preVal, curVal, curIndex, sourceArray) => {
            return preVal + curVal
        }, 20)
        console.log(add3_)

        //
        let arr100 = [];
        arr100.length = 100;
        arr100.fill(1, 0, arr100.length)
        // 第一个值填充的值 第二个值开始填充的索引  第三个值是结束的索引
        console.log(arr100)
        let add100 = arr100.reduce((preVal, curVal, curIndex) => {
            return preVal + curIndex + 1
        }, 0)
        console.log(add100)
    </script>
</body>

</html>